#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
//0:标准输入 1：标准输出 2：标准错误

#if 0
//输出重定向
int main()
{
    close(1);
    umask(0);
    int fd = open("./file.txt",O_WRONLY | O_CREAT | O_TRUNC ,0644);
    //printf默认是想标准输出打印，标准输出stdout类型为FILE*
    //FILE当中封装了fd -> 标准输出的_fileno成员值为1，printf本质就是向文件描述符为1的文件进行打印
    printf("hello write\n");
    close(fd);
    return 0;
}
#endif

#if 0
//追加重定向
int main()
{
    close(1);
    umask(0);
    int fd = open("./file.txt",O_WRONLY | O_CREAT | O_APPEND,0644);
    printf("hello append\n");
    close(fd);
    return 0;
}
#endif

//输入重定向
int main()
{
    close(0);
    int fd = open("./file.txt",O_RDONLY);
    #define NUM 64
    char line[NUM] = {0};
    //fgets默认从标准输入当中读取内容，标准输入的stdin类型为FILE*
    //FILE当中封装了fd -> 标准输入的_fileno成员值为0，fgets本质就是向文件描述符为0的文件进行读取数据
    while(fgets(line,NUM-1,stdin)) //fgets(读到哪，期望读取多少字节，从哪里读)
    {
        printf("content:%s",line);
        line[0]=0;
    }
    close(fd);
    return 0;
}